package com.witmore.skyline.web.service;

import com.witmore.skyline.web.controller.vo.param.DeviceOilListParamVO;
import com.witmore.skyline.web.controller.vo.result.ResponseResult;
import com.witmore.skyline.web.service.third.yjx.dto.AddOilDTO;
import com.witmore.skyline.web.service.third.yjx.dto.DeviceAvgFuelConsumptionDTO;
import com.witmore.skyline.web.service.third.yjx.dto.DeviceOilConsumptionDTO;
import com.witmore.skyline.web.service.third.yjx.dto.DeviceOilDTO;
import com.witmore.skyline.web.service.third.yjx.dto.DeviceRemainingOilVolumeDTO;

import java.util.List;

/**
 * Description: DeviceOilService
 * Author: 豆子高
 * Date: 2025/3/06 10:12
 */
public interface DeviceOilService {
    /**
     * 获取油位百分比
     */
    ResponseResult<List<DeviceOilDTO>> oilList(DeviceOilListParamVO deviceOilListParamVO);

    /**
     * 获取加油列表
     */
    ResponseResult<AddOilDTO> refuelList(DeviceOilListParamVO deviceOilListParamVO);

    /**
     * 获取设备用油量统计
     */
    ResponseResult<List<DeviceOilConsumptionDTO>> oilConsumptionList(DeviceOilListParamVO deviceOilListParamVO);

    /**
     * 获取设备平均用油量
     */
    ResponseResult<List<DeviceAvgFuelConsumptionDTO>> avgFuelConsumptionList(DeviceOilListParamVO deviceOilListParamVO);

    /**
     * 获取设备剩余油量统计
     */
    ResponseResult<List<DeviceRemainingOilVolumeDTO>> remainingOilVolumeList(DeviceOilListParamVO deviceOilListParamVO);

    /**
     * 获取油位百分比V2（分页优化版，带缓存）
     */
    ResponseResult<List<DeviceOilDTO>> oilListV2(DeviceOilListParamVO deviceOilListParamVO);
}
